/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Threads;

import GUI.MensajeEspera;
import GUI.Principal;
import GUI.ResultadosConvolucion;



/**
 *
 * @author Nico
 * Clase HiloEspera representa un nuevo hilo en el que se ejecuta la ventana de 
 * la clase MensajeEspera la cual muestra el mensaje "Por favor, espere..." mientras
 * se ejecutan los calculos y procesos correspondientes.
 */
public class HiloEspera extends Thread{
    private String ruta; 
    private String nombreArchivo; 
    Principal padre;
    ResultadosConvolucion padre2;
    MensajeEspera a;
    
    /**
     * Constructor HiloEspera
     * @param str
     * @param ruta
     * @param nombreArchivo
     * @param padre 
     */
    public HiloEspera(String str, String ruta, String nombreArchivo, Principal padre) { 
    
        super(str);         
        this.ruta = ruta;
        this.nombreArchivo = nombreArchivo;
        this.padre = padre;
        this.padre2 = null;
        this.a = new MensajeEspera(padre, true, this);
        this.a.setVisible(true);
    }      

    public HiloEspera(String str, String ruta, String nombreArchivo, ResultadosConvolucion padre2) {
        super(str);         
        this.ruta = ruta;
        this.nombreArchivo = nombreArchivo;
        this.padre = null;
        this.padre2 = padre2;
        this.a = new MensajeEspera(padre, true, this);
        this.a.setEspera();
        this.a.setVisible(true);
    }

    
    /**
     * Funcion personalizada de run(), donde ejecuta la ventana de espera.
     */
    
    public void run() {
            
            if(this.padre != null){
                HiloMatlab hiloM = new HiloMatlab("HiloM", ruta, nombreArchivo, this.padre, this);
                hiloM.run();
            }else 
                if(this.padre2 != null){
                    HiloMatlab2 hiloM = new HiloMatlab2("Hilo", ruta, this.nombreArchivo, padre, 0, this);
                    hiloM.run();
                    
                    this.padre2.continuacionComparacion(this);
            }

    }
   
    /**
     * Funcion stopThis() para detener la ventana y el hilo que la ejecuto.
     */
    public void stopThis(){
        this.a.terminar();
        this.interrupt();
    }
}
